From 377a788ff0478ae2d27770e49d5f61bc87324097 Mon Sep 17 00:00:00 2001 From: MatmaRex Date: Fri, 24 May 2013 16:09:56 +0200 Subject: [PATCH] Reorder SpecialRecentChanges::webOutput Reordered the function to separate the data building logic and actual outputting. I'd love to actually split them in two functions, but the two parts are still slightly interdependent and passing everything as arguments would be awkward. Change-Id: If770640d5b79e8771470bb7b6d1fcc16060f06b0 --- includes/specials/SpecialRecentchanges.php | 57 ++++++++++++---------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/includes/specials/SpecialRecentchanges.php b/includes/specials/SpecialRecentchanges.php index d26320221f..a408beb2ce 100644 --- a/includes/specials/SpecialRecentchanges.php +++ b/includes/specials/SpecialRecentchanges.php @@ -488,27 +488,15 @@ class SpecialRecentChanges extends IncludableSpecialPage { public function webOutput( $rows, $opts ) { global $wgRCShowWatchingUsers, $wgShowUpdatedMarker, $wgAllowCategorizedRecentChanges; - $limit = $opts['limit']; - - if ( !$this->including() ) { - // Output options box - $this->doHeader( $opts ); - } - - // And now for the content - $feedQuery = $this->getFeedQuery(); - if ( $feedQuery !== '' ) { - $this->getOutput()->setFeedAppendQuery( $feedQuery ); - } else { - $this->getOutput()->setFeedAppendQuery( false ); - } + // Build the final data if ( $wgAllowCategorizedRecentChanges ) { $this->filterByCategories( $rows, $opts ); } - $showNumsWachting = $this->getUser()->getOption( 'shownumberswatching' ); - $showWatcherCount = $wgRCShowWatchingUsers && $showNumsWachting; + $limit = $opts['limit']; + + $showWatcherCount = $wgRCShowWatchingUsers && $this->getUser()->getOption( 'shownumberswatching' ); $watcherCache = array(); $dbr = wfGetDB( DB_SLAVE ); @@ -516,14 +504,7 @@ class SpecialRecentChanges extends IncludableSpecialPage { $counter = 1; $list = ChangesList::newFromContext( $this->getContext() ); - if ( $rows->numRows() === 0 ) { - $this->getOutput()->wrapWikiMsg( - "
\n$1\n
", 'recentchanges-noresult' - ); - return; - } - - $s = $list->beginRecentChangesList(); + $rclistOutput = $list->beginRecentChangesList(); foreach ( $rows as $obj ) { if ( $limit == 0 ) { break; @@ -556,12 +537,34 @@ class SpecialRecentChanges extends IncludableSpecialPage { $changeLine = $list->recentChangesLine( $rc, !empty( $obj->wl_user ), $counter ); if ( $changeLine !== false ) { - $s .= $changeLine; + $rclistOutput .= $changeLine; --$limit; } } - $s .= $list->endRecentChangesList(); - $this->getOutput()->addHTML( $s ); + $rclistOutput .= $list->endRecentChangesList(); + + // Print things out + + if ( !$this->including() ) { + // Output options box + $this->doHeader( $opts ); + } + + // And now for the content + $feedQuery = $this->getFeedQuery(); + if ( $feedQuery !== '' ) { + $this->getOutput()->setFeedAppendQuery( $feedQuery ); + } else { + $this->getOutput()->setFeedAppendQuery( false ); + } + + if ( $rows->numRows() === 0 ) { + $this->getOutput()->wrapWikiMsg( + "
\n$1\n
", 'recentchanges-noresult' + ); + } else { + $this->getOutput()->addHTML( $rclistOutput ); + } } /** -- 2.20.1